Komunikační protokol ModBus
Modbus je univerzální komunikační protokol, který je dnes široce používán v oblasti průmyslového řízení. Pomocí tohoto protokolu mohou ovladače komunikovat mezi sebou nebo s jinými zařízeními prostřednictvím sítě (například Ethernet). Protokol Modbus používá komunikační technologii z hlavního zařízení, tj. aktivní dotazy a operace z hlavního zařízení. Protokol používaný hlavním zařízením se obvykle nazývá Modbus Master a protokol používaný zařízením se nazývá Modbus Slave. Typické hlavní zařízení zahrnuje průmyslové řídicí stroje a průmyslové řídicí zařízení atd.; Typické programovatelné ovladače od zařízení, jako je PLC atd. Fyzické komunikační rozhraní Modbus je možné vybrat sériový port (včetně RS232 a RS485) nebo Ethernet port. Její komunikace následuje následujícím postupem:
• Hlavní zařízení odesílá požadavky ze zařízení
Analýza a zpracování požadavků z hlavního zařízení a následné odeslání výsledků hlavnímu zařízení
● Pokud dojde k jakékoli chybě, z zařízení se vrátí výjimečný funkční kód
Software pro komunikační protokol ModBus
Softwarové produkty pro komunikační protokol ModBus od společnosti Intel se používají především v prostředí vestavěné základní desky ARM9 od společnosti Intel. Všechny základní desky jsou vybaveny bohatými sériovými porty, síťovými zdroji, univerzálním rozhraním GPIO atd. V kombinaci s softwarem pro komunikační protokol ModBus lze velmi snadno vytvořit aplikace Master (Master) a Slave (Slave) v souladu s komunikačními specifikacemi ModBus. Pro hlavní způsob komunikace ModBus je softwarový balíček komunikačního protokolu ModBus od společnosti Intel rozdělen do dvou samostatně použitelných částí, a to „Software pro hlavní protokol ModBus“ (zkráceně modbus_Master) a „Software pro protokol strany zařízení ModBus“ (zkráceně modbus_Slave). Software pro komunikační protokol ModBus je v současné době provozován v prostředí WinCE a je zákazníkům k dispozici ve formě funkce C plus statické knihovny LIB. Hlavní charakteristiky jsou následující:
Vynikající pro průmyslové aplikace v reálném čase
Podporuje aplikace protokolu ModBus založené na sériovém portu nebo aplikace protokolu ModBus založené na TCP
RTU přenosový režim
Podporuje většinu operací s funkčním kódem Modbus, včetně operací s bity vstupů na cívkách, diskrétních spínačích a operací s bajty na registrech
• Podpora vysílací adresy
Flexibilní nastavení časových limitů pro komunikaci ModBus
● Získat podrobné informace o chybových kódech protokolu přenosu v komunikaci
Diagram komunikačního softwaru pro protokol ModBus

Funkční kódy podporované softwarem pro protokol ModBus
Funkční kód |
Popis |
1 |
Číst jednotlivé cívky |
2 |
Čtění diskrétního vstupu |
3 |
Číst více registrů |
4 |
Čtění vstupního registra |
5 |
Napište jednotlivou cívku |
6 |
Napsat jednotlivý register |
15 |
Napište více cívek |
16 |
Napsat více registrů |
22 |
Blokovat zapisovací register |
23 |
Čtení / zápis registru |
Základní způsoby použití softwaru
Pro snadné použití aplikace a udržení konzistentní formy kódu pro různá komunikační média, funkce API v softwaru protokolu ModBus (včetně modbus_Master a modbus_Slave) nabízeného společností Ingron mohou podporovat protokol Modbus založený na sériovém portu a TCP, aplikace potřebuje pouze rozlišovat různými parametry při volání inicializační funkce, pokyny k parametrům naleznete v příslušných záhlavících: modbus_Master.h a modbus_Slave.h
Aplikace modbus_master
Aplikace jako klientský režim Modbus je především připravena a odeslána do serverového zařízení a čeká na odpověď serveru. Při vývoji těchto aplikací mohou uživatelé odkazovat na standardní literaturu Modbus a datovou příručku pro komunikační rozhraní údajného zařízení a přímo zavolat na softwarový balíček modbus_Master od společnosti Intel, který poskytuje odpovídající operační funkce API, aby dokončili přístup a kontrolu serverového zařízení. Při vývoji takových aplikací musí uživatel obsahovat pouze modbus_master.h/modbus_master.lib.
Aplikace modbus_slave
Jako aplikace v režimu serveru ModBus, hlavně je třeba realizovat analýzu a odpověď na zprávy aplikace ModBus, ale to je jen část celé komunikace ModBus, druhá část je také potřeba mít přístup k datům aplikace, tato část obsahu musí být definována uživatelem sám. Pro snadné použití zákazníka je v balíčku modbus_Slave realizováno automatické načítání těchto funkcí uživatelského rozhraní ve formě funkčních ukazatelů, které spojují zpracování dat aplikace uživatele s odpovědí na zprávu aplikace ModBus. Uživatelé stačí definovat tyto funkce rozhraní podle potřeby, aby realizovali příslušné funkce, konkrétně definované jednotlivými funkcemi prostřednictvím speciálního souboru CPP: DataProvider.cpp.
Z toho vyplývá, že při vývoji těchto aplikací je třeba obsahovat dvě části obsahu, část je funkce API definovaná v modbus_slave.h/modbus_slave.lib; Další částí je funkce uživatelského datového rozhraní definovaná v DataProvider.h / DataProvider.cpp, kde funkce rozhraní vyžaduje, aby uživatel konkrétně implementoval v DataProvider.cpp.
Abyste mohli včas reagovat na zprávy aplikace ModBus, je třeba si uvědomit, že při programování by měl být navržen thread, který opakovaně volá funkci modbus_Slave, která je v režimu blokování.
Například:
(1) Spustit protokol strany zařízení modbus
hPort = mbusSlave_StartupServer(_T)'*'), 1, 10000, mbusSlave_Interface );
Nebo...
hPort=mbusSlave_StartupServer(_T)"COM3:9600-8-1-0"),1,10000, mbusSlave_Interface );
(2) Volání funkce Serverloop v vláknu na odpověď na požadavek
zatímco( 1 )
{
//Volá výkonnou funkci pro analýzu a reakci na zprávy ModBus.
výsledek = mbusSlave_ServerLoop( hPort );
pokud(výsledek!=0)//Zkontrolujte, zda se vrátila chyba
{
//Řešení chyb: Tento příklad je textová zpráva pro získání a tisk chybového kódu
wcscpy( szText, mbusSlave_GetErrorText( výsledek));
i1 = wcslen( szText );
pokud(i1>0)
{
wcstombs( strText, szText, i1 );
tisk(chybový kód ': %s! n'Stretex);
}
}
}
Software pro komunikační protokol ModBus, který byl dříve nabízen společností Ingrid, byl zákazníkům k dispozici ve formě funkce C plus statické knihovny (soubor modbus.lib nebo libmodbus.a). Vzhledem k rostoucímu počtu zákazníků je protokol ModBus, zejména software pro hlavní protokol (zkráceně modbus_Master), předinstalován do jádra Intel Embedded Industrial Control Core System ve formě dynamické knihovny (soubor modbus_Master.dll nebo libmbusmaster.so) pro usnadnění volání aplikací zákazníků. Předinstalované základní desky s protokolem Modbus zahrnují všechny základní desky řady ESM (ESM6802, ESM6800, ESM335x, ESM928x atd.).
Související referenční materiály
| Aplikace pro sběr prúdového kroužku od 4 do 20 mA | Komunikační protokol Modbus pod WinCE | |
| Software pro protokol Modbus pro zařízení pod WinCE | Embedded Linux základní deska podporuje protokol Modbus | |
| Software Modbus pro Linux | ESM6802 podporuje vývoj Qt MODBUS programů | |
| Předinstalování protokolu Modbus na základní desku |
